package entidades;

import java.sql.Date;
import java.util.List;
import java.util.Objects;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;

@Entity
public class Administrativo extends Usuario {
    private static final long serialVersionUID = 1L;
    @Column(nullable = false)
    private int numeroTrabajador;
    @Column(nullable = false)
    private String departamento;
    
    @ManyToMany
    @JoinTable(name = "Gestion_cita",
      joinColumns= @JoinColumn(name = "administrativo_fk",nullable=false),
      inverseJoinColumns= @JoinColumn(name = "cita_fk",nullable=false))
    private List<Cita> cita;

    public Administrativo() {
    }

    public Administrativo(String dni, String password, String nombre, String apellidos, Date fechaNacimiento, String email, String telefono,int numeroTrabajador,String departamento){
        setDni(dni);
        setPassword(password);
        setNombre(nombre);
        setApellidos(apellidos);
        setFechaNacimiento(fechaNacimiento);
        setEmail(email);
        setTelefono(telefono);
        this.departamento=departamento;
        this.numeroTrabajador=numeroTrabajador;
    }
    public String getDepartamento() {
        return departamento;
    }

    public void setDepartamento(String departamento) {
        this.departamento = departamento;
    }
    
    public int getNumeroTrabajador() {
        return numeroTrabajador;
    }

    public void setNumeroTrabajador(int numeroTrabajador) {
        this.numeroTrabajador = numeroTrabajador;
    }

    public List<Cita> getCita() {
        return cita;
    }

    public void setCita(List<Cita> cita) {
        this.cita = cita;
    }

    
    @Override
    public int hashCode() {
        int hash = 3;
        hash = 67 * hash + this.numeroTrabajador;
        hash = 67 * hash + Objects.hashCode(this.departamento);
        return hash;
    }

    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final Administrativo other = (Administrativo) obj;
        if (this.numeroTrabajador != other.numeroTrabajador) {
            return false;
        }
        if (!Objects.equals(this.departamento, other.departamento)) {
            return false;
        }
        return true;
    }



    @Override
    public String toString() {
        return "Administrativo{" + "numeroTrabajador=" + numeroTrabajador + ", departamento=" + departamento + '}';
    }
    
}
